package com.hanamaki.array;

import java.util.Arrays;

/**
 * 冒泡排序
 */
public class Demo09 {

    /*1. 冒泡排序 要使用两层 for循环
    *  外层循环控制排序的次数
    *  内存循环相邻的两个元素依次比较
    *
    * 在冒泡排序中，依次比较相邻的两个元素的 大小 如果前一个比后一个大，就交换位置
    * 要使用临时变量
    *
    * 依次比较知道排序完成
    *
    * */


    public static void main(String[] args) {
        int[] arr = {8, 4, 2, 1, 23, 344, 12};

        bulu(arr);

    }


    /**
     * 冒泡排序的方法
     */
    public static void bulu(int[] a) {
        // 定义临时变量
        int temp = 0;
        for (int i = 0; i < a.length - 1; i++) {

            /* 标志位 */
            boolean flag = false;

            for (int j = 0; j < a.length - i; j++) {

                if (a[i] < a[j + i]) {
                    temp = a[i];
                    a[i] = a[j + i];
                    a[j + i] = temp;
                    flag = true;
                }
            }
            if (!flag) {
                break;
            }
        }
        System.out.println(Arrays.toString(a));
    }


}
